#!/usr/bin/env bash

############################################## PATH CONF ##################################################
JAVA_HOME=$JAVA_HOME
PROJECT_PATH=$(dirname "$PWD")
DEBUG_PATH=$(pwd)
JAR_PATH="$JAVA_HOME"/jre/lib/endorsed
JAR="rt_debug.jar"

echo "########## ENV CONF ##########"
echo "JAVA_HOME： $JAVA_HOME"
echo "PROJECT_PATH： $PROJECT_PATH"
echo "DEBUG_PATH： $DEBUG_PATH"
echo "JAR_PATH： $JAR_PATH"
# shellcheck disable=SC2028
echo "########## ENV CONF ##########\n"

############################################## PERMISSION ###################################################
# change permission
cd "$PROJECT_PATH" && chmod -R 777 ./*

############################################## Step 1 #####################################################
### Step1：generate filename.txt
echo "Step 1：start generate filename.txt"
cd "$DEBUG_PATH" && find "$PROJECT_PATH"/src -type f -name "*.java" >filename.txt
# shellcheck disable=SC2028
echo "Step 1：generate filename.txt success \n"

############################################## Step 2 #####################################################
### Step2：compile source code
echo "Step 2：start compile all .java files"
cd "$DEBUG_PATH" && mkdir -p classes && javac -J-Xms16m -J-Xmx1024m \
  -sourcepath "$PROJECT_PATH"/src \
  -cp "$DEBUG_PATH"/rt.jar \
  -d "$DEBUG_PATH"/classes -g @filename.txt >log.txt 2>&1
# shellcheck disable=SC2028
echo "Step 2：compile all .jar files success \n"

############################################## Step 3 #####################################################
### Step3：generate jar file
echo "Step 3：start generate jar file"
# shellcheck disable=SC2035
cd "$DEBUG_PATH/classes" && jar cf0 "$JAR" * && mkdir -p "$JAR_PATH"
# shellcheck disable=SC2028
echo "Step 3：generate jar file success \n"

############################################## Step 4 #####################################################
### Step4：move files
echo "Step 4：move jar file to JDK endorsed directory"
cp -R rt_debug.jar "$JAR_PATH" && cd "$JAR_PATH" && chmod -R 777 "$JAR"
# shellcheck disable=SC2028
echo "Step 4：move jar file to JDK endorsed directory success \n"

############################################## Step 5 #####################################################
### Step5：remove files
echo "Step 5：clear classes files ..."
cd "$DEBUG_PATH" && rm -rf classes filename.txt
